The present invention relates to an expert knowledge system and in particular to a development tool for creating a rule-based expert knowledge system which makes inferences using the rules. As a general background to expert knowledge systems and development tools, reference is made to the books, A Guide to Expert Systems, by Donald A. Waterman, Addison-Wesley Publishing Company, Menlo Park, Calif., 1986, and Expert Systems by Paul Harmon and David King, John Wiley and Sons, Inc., N.Y., 1985.
In the prior art there are a number of traditional approaches to rule-based knowledge systems. The first and probably most famous is known as MYCIN which was developed at Stanford University in the 1970's. This expert system is used as an aid to physicians in diagnosis of blood infections. This system was built with the use of a knowledge base and an inference engine. The knowledge base is a memory structure or store which consists of rules, facts, and heuristics about the expert subject matter. The inference engine establishes the procedures by which inferencing will occur based on the information contained in the knowledge base. The inference engine in MYCIN, for example, uses backward chaining through the rules starting with the conclusions or goals (disease diagnoses) of the rules and working backwards through the antecedents or "if" clauses of the rules. Other techniques such as forward chaining, modus ponens, are possible.
The MYCIN system and other existing rule-based expert systems tend to be large and require large well-supported computer facilities in order to handle the memory and processing requirements of the inefficient languages which are used. The structure for representing the knowledge base is generally quite large and complicated to program and reprogram in order to extend the capabilities of the expert system.
Such systems, while offering general solutions to expert system problems, are not suited for a real-world, real-time environment such as, for example, found on an assembly line or in the operation of a piece of equipment. In these situations, there is a requirement that a system be immediately responsive to the needs of the environment, perhaps having to analyze hundreds and thousands of rules in a second yet be small and cost effective for the environment of product manufacture, Accordingly, the system must be efficient and compact in order to act quickly and in order to be economically feasible to move from a university or research facility- environment to, for example, an on-line production environment.
A problem which faces every expert system is that of efficiently handling the great volume of information which constitutes the knowledge of an expert which is embodied in the knowledge base and the difficulty in assigning values to the rules in the knowledge base. Rule-based expert systems in general can value a variable, as for example a rule conclusion, as being true or false. Some are able to assign a certainty factor to whether a variable is true or false. However, as can be understood, oftentimes it cannot be determined whether a variable is true or false.
Besides being able to properly characterize the rules and information contained in the knowledge base, there is a requirement that the inference engine be able to efficiently analyze and the information so that, with the information given in the knowledge base, conclusions can be reached which may not have been initially anticipated. Prior expert systems have not always been able to analyze the knowledge base in order to optimally use the information contained therein. Further, as the knowledge base can be quite extensive, even in a small system, there is a need to prune the knowledge base in an efficient manner so that only the appropriate portions of the knowledge base are used to address the required analysis.
Further, while existing systems and system languages such as Lisp can accommodate both positive and negative variables (classic two valued logic systems), these systems are unable to handle negative rules. These systems are unable to evaluate a second negative logical pathway in addition to the first logical pathway of positive rules.
The present invention is directed to overcoming the disadvantages of prior systems and providing a compact, efficient expert knowledge system suitable for real-time use in, for example, a production environment.